.. _Advanced: ============================= Advanced low level functions ============================= .. toctree:: :maxdepth: 2 :hidden: :glob: EEex* +-----------------------------------------------------------------------+----------------------------------------------------+ | **Function** | **Description** | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_AddressList` | Returns an array of pattern database entries | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_AllocCodePage` | Allocate additional code pages when needed | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_CalcLabelOffset` | Calculate the offset to a label | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_CalcWriteLength` | Calculate the write length | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_Call` | Calls an internal function at the given address | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ClearCStringList` | Clears a :ref:`CStringList` | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ConstructCString` | Constructs and returns CString from a Lua string | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_CopyCString` | Copies the given CString and returns its pointer | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_CopyCStringList` | Copies a :ref:`CStringList` | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_DecodeAssembly` | Decodes assembly | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_DefineAssemblyLabel` | Adds an array entry for a text label and an address| +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_DefineAssemblyMacro` | | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_DisableCodeProtection` | Reset RWX of memory address range | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_DllCall` | Call a windows dll function | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_DumpDynamicCode` | Dumps contents of dynamically allocated EEex code | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_DumpLuaStack` | Display lua stack for debugging purposes | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_EnableCodeProtection` | Set RWX of memory address range | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_Error` | Throws a Lua error | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ExposeToLua` | Registers a function name and address with lua | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_Free` | Free memory allocated with EEex_Malloc | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_FreeCPtrList` | Frees memory allocated by the CPtrList pointer | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_FreeCString` | Frees memory allocated by a CString pointer | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_FunctionLog` | Logs a message to the console window | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_GetAllocGran` | Get memory granularity for allocating memory | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_GetCurrentCInfinity` | Returns the current CInfinity instance | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_GetEffectiveY` | | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_GetLuaRegistryIndex` | Fetches a value held in the special lua registry | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_Init` | Initialize EEex - called from loader | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_IterateCPtrList` | Iterates through every element and calls func() | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_Label` | Returns an address from the global labels array | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_Malloc` | Allocate a block of memory and return a pointer | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_Memset` | Fills a block of memory with a specific value | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_MessageBox` | Show a message box to user | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ReadByte` | Read a ``BYTE`` value from a memory address | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ReadDword` | Read a ``DWORD`` value from a memory address | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ReadDwordDebug` | Read a ``DWORD`` value from a memory address | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ReadLString` | Reads a string from address until null or max size | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ReadSignedWord` | Read a signed ``WORD`` value from a memory address | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ReadString` | Reads a string from an address until null | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ReadUserdata` | | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ReadWord` | Read an unsigned ``WORD`` value from an address | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ReserveCodeMemory` | Dynamically allocates and reserves memory for code | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_Reset` | Executes the listeners in EEex_ResetListeners | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ResolveMacro` | | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ResolveMacroArg` | | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_SetLuaRegistryFunction` | | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_ToLightUserdata` | | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_VirtualAlloc` | Allocate memory using the win32 VirtualAlloc api | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_WriteAssembly` | Write raw assembly x86 opcodes to memory location | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_WriteAssemblyAuto` | Writes assembly declarations into dynamic memory | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_WriteAssemblyFunction` | Writes assembly into memory and exposes to lua | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_WriteByte` | Write a ``BYTE`` value to a memory address | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_WriteDword` | Write a ``DWORD`` value to a memory address | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_WriteLString` | Writes a null padded string to the given address | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_WriteString` | Writes a string to the specified address | +-----------------------------------------------------------------------+----------------------------------------------------+ | :ref:`EEex_WriteWord` | Write a ``WORD`` value to a memory address | +-----------------------------------------------------------------------+----------------------------------------------------+